e414ad0eca307d49a36b25590acb05b8dbc5090d,src/main/java/pitt/search/semanticvectors/PSI.java,PSI,trainIncrementalPSIVectors,#String#,185
Before Change
Vector predToAdd = subjectElementalVector.copy();
predToAdd.bind(permutedObjectElementalVector);
predicateSemanticVector.superpose(predToAdd, sWeight * oWeight, null);
Vector predToAddInv = objectElementalVector.copy();
predToAddInv.bind(permutedSubjectElementalVector);
After Change
subjToAdd.bind(predicateElementalVectorInv);
objectSemanticVector.superpose(subjToAdd, pWeight * (sWeight + predWeight), null);
if (flagConfig.trainingcycles() > 0) //for experiments with generating iterative predicate vectors
{
Vector predicateSemanticVector = semanticPredicateVectors.getVector(predicate);
Vector predicateSemanticVectorInv = semanticPredicateVectors.getVector(predicate+ "-INV");
//construct permuted editions of subject and object vectors (so binding doesn't commute)
Vector permutedSubjectElementalVector = VectorFactory.createZeroVector(flagConfig.vectortype(), flagConfig.dimension());
Vector permutedObjectElementalVector = VectorFactory.createZeroVector(flagConfig.vectortype(), flagConfig.dimension());
permutedSubjectElementalVector.superpose(subjectElementalVector, 1, predicatePermutation);
permutedObjectElementalVector.superpose(objectElementalVector, 1, predicatePermutation);
permutedSubjectElementalVector.normalize();
permutedObjectElementalVector.normalize();
Vector predToAdd = subjectElementalVector.copy();
predToAdd.bind(permutedObjectElementalVector);
predicateSemanticVector.superpose(predToAdd, sWeight * oWeight, null);
Vector predToAddInv = objectElementalVector.copy();
predToAddInv.bind(permutedSubjectElementalVector);